import globals from 'globals';
import pluginJs from '@eslint/js';
import tseslint from 'typescript-eslint';
import pluginVue from 'eslint-plugin-vue';
import eslintConfigPrettier from 'eslint-config-prettier'; // 从 prettier 插件导入

export default [
  // 1. 全局配置和忽略项
  {
    languageOptions: { globals: globals.browser },
    ignores: ['dist/**', 'node_modules/**', '.vscode/**']
  },

  // 2. JS 和 TS 的基础配置
  pluginJs.configs.recommended,
  ...tseslint.configs.recommended,

  // 3. Vue 的核心配置
  ...pluginVue.configs['flat/essential'],

  // 4. 关键！为 TypeScript 和 Vue 文件指定 parser 和 parserOptions
  {
    files: ['**/*.{js,mjs,cjs,ts,mts,cts,vue}'], // 应用于所有相关文件
    languageOptions: {
      parserOptions: {
        // 告诉 ESLint 使用哪个 tsconfig 文件
        project: [
          './tsconfig.json',
          './tsconfig.app.json',
          './tsconfig.node.json',
        ],
        // 明确指定 tsconfig 的根目录为当前项目目录
        tsconfigRootDir: import.meta.dirname,
      },
    },
  },

  // 5. Prettier 配置，确保它在最后，以覆盖其他格式化规则
  eslintConfigPrettier,
];
